import java.io.File;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: ZhongJinTao
 * Date: 2024-03-05
 * Time: 13:42
 */
public class IODemo10 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要查找的文件名");
        String fileName = scanner.next();
        System.out.println("请输入在哪个路径下查找");
        String rootPath = scanner.next();
        File file = new File(rootPath);
        //判断路径是否合法
        if(!file.isDirectory()) {
            return;
        }
        //遍历树，查找文件名是否存在，递归
        scanDir(file, fileName);
    }
    private static void scanDir(File file, String fileName) {
        File[] files = file.listFiles();
        //判断文件数组是不是空，如果是空，也就是空目录
        if(files == null) {
            return;
        }
        for(File f : files) {
            //记录遍历的日志
            System.out.println(f.getAbsolutePath());
            //普通文件，判断当前文件名和要查找的文件名是否相同
            if(f.isFile()) {
                String name = f.getName();
                if (fileName.equals(name)) {
                    System.out.println("找到了，文件路径为：" + f.getAbsolutePath());
                }
            } else if (f.isDirectory()) {
                //目录文件，继续往下递归
                scanDir(f, fileName);
            } else {
                //这个else暂时不需要
            }
        }

    }
}
